package com.tancire.system.service.impl;

import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import com.tancire.common.utils.DateUtils;
import com.tancire.common.utils.RsaUtils;
import com.tancire.common.utils.bean.PairBean;
import org.springframework.stereotype.Service;
import com.tancire.system.mapper.SysAppMapper;
import com.tancire.system.domain.SysApp;
import com.tancire.system.service.ISysAppService;

/**
 * 应用管理Service业务层处理
 *
 * @author tancire
 * @date 2024-06-13
 */
@Service
public class SysAppServiceImpl implements ISysAppService {
    @Resource
    private SysAppMapper sysAppMapper;

    /**
     * 查询应用管理
     *
     * @param appId 应用管理主键
     * @return 应用管理
     */
    @Override
    public SysApp selectSysAppByAppId(Long appId) {
        return sysAppMapper.selectSysAppByAppId(appId);
    }

    /**
     * 查询应用管理列表
     *
     * @param sysApp 应用管理
     * @return 应用管理
     */
    @Override
    public List<SysApp> selectSysAppList(SysApp sysApp) {
        return sysAppMapper.selectSysAppList(sysApp);
    }

    /**
     * 新增应用管理
     *
     * @param sysApp 应用管理
     * @return 结果
     */
    @Override
    public int insertSysApp(SysApp sysApp) {
        sysApp.setCreateTime(DateUtils.getNowDate());
        // 初始化密钥对
        PairBean pairBean = RsaUtils.generateRsaPair();
        // 保存密钥对
        sysApp.setPubKey(pairBean.getPublicKey());
        sysApp.setPrvKey(pairBean.getPrivateKey());
        return sysAppMapper.insertSysApp(sysApp);
    }

    /**
     * 修改应用管理
     *
     * @param sysApp 应用管理
     * @return 结果
     */
    @Override
    public int updateSysApp(SysApp sysApp) {
        sysApp.setUpdateTime(DateUtils.getNowDate());
        return sysAppMapper.updateSysApp(sysApp);
    }

    /**
     * 批量删除应用管理
     *
     * @param appIds 需要删除的应用管理主键
     * @return 结果
     */
    @Override
    public int deleteSysAppByAppIds(Long[] appIds) {
        return sysAppMapper.deleteSysAppByAppIds(appIds);
    }

    /**
     * 删除应用管理信息
     *
     * @param appId 应用管理主键
     * @return 结果
     */
    @Override
    public int deleteSysAppByAppId(Long appId) {
        return sysAppMapper.deleteSysAppByAppId(appId);
    }
}
